約 5,356,356 件
https://w.atwiki.jp/julibuff/pages/4.html
ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //www1.atwiki.jp/guide/pages/266.html#id_542badf7 たとえば、#news(ゲーム)と入力すると以下のように表示されます。 世界を席巻する『イカゲーム』はなぜヒットした? 紐解くカギはゲーム参加者の“人間ドラマ”にあり - auone.jp 横浜流星&佐野勇斗、映画『嘘喰い』デス・ゲームに興じるヤバいやつら - 中日新聞 『カレイジアスペルセウス』(MSX版)がレトロゲーム遊び放題アプリ“PicoPico”に追加。12月15日正午まで体験プレイも可能 - ファミ通.com ゲームの中から出てきたみたい! 粘土で作った実寸大ポケモン「ナエトル」がすごいクオリティー(ねとらぼ) - Yahoo!ニュース - Yahoo!ニュース C大阪敗退で、大久保ラストゲーム「苦しくもあり、楽しくもあった」 - 産経ニュース スペインで放送されていた「ミスター味っ子」が影響!?日本大好きなスペインのゲーム開発者インタビューで飛び出した意外な裏話(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 「GRANBLUE FANTASY Relink」ゲーム映像を使ったPVが初公開!マルチプレイなどのゲーム概要や参戦キャラも発表|ゲーム情報サイト Gamer - Gamer このキアヌ……CG? 本物? 話題の「マトリックス」×「Unreal Engine 5」技術デモ、実際に触って感じたその“スゴさ”(ねとらぼ) - Yahoo!ニュース - Yahoo!ニュース 【PCゲーム極☆道】第105回『Happy s Humble Burger Farm』 3度ミスしたら怪物が殺しにやってくる深夜ワンオペバイトシミュレータホラーゲーム - IGN Japan コロナ禍で子供も密回避 友達つなぐオンラインゲームの光と影 - 毎日新聞 - 毎日新聞 FLOW、「優勝 feat.Afterglow」ゲーム実装&先行配信開始!「COLORS」MVフルサイズも公開(THE FIRST TIMES) - Yahoo!ニュース - Yahoo!ニュース 初期型PSPが発売された日。SCE(当時)が初めて携帯ゲーム機に参入したハード。動画や音楽が再生できるマルチメディア端末として利用できたのが新しかった【今日は何の日?】(ファミ通.com) - Yahoo!ニュース - Yahoo!ニュース 『ポケモンGO』『ドラクエウォーク』『ピクミン』……行動経済学から見る、位置情報ゲームがヒットする理由(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース スマートフォン向けゲーム「D4DJ Groovy Mix」イベント&ガチャ「『新曲! 対立!? お泊り会!!?』~真秀&麗~」開催! - PR TIMES キャラゲーに“全集中” ゲーム好きの漫画家が「鬼滅の刃 ヒノカミ血風譚」の評価に困った理由(ITmedia NEWS) - Yahoo!ニュース - Yahoo!ニュース 【今週の新作まとめ】『シャーマンキング』初の公式スマホ向けゲームが登場!『聖剣伝説 レジェンド オブ マナ』やモルカーのパズルなど新作4本! | スマホゲーム情報ならファミ通App - ファミ通App 【世界最先端】『ULTRAMAN』メタバース対応NFTゲーム化決定!トレイラー公開 - PR TIMES ゲームシナリオの解剖学:第1回『Grim Fandango』――「外連味」を「説明」することの難しさ - IGN Japan 「クーロンズ・ゲート」(1997)の毒気に当てられクーロンズ・ゲートそのものになってしまいそう:うえけんの「今そのゲーム!?」Vol.22 - Engadget日本版 ラグビー姫野和樹選手は「遠征にゲームとテレビ持参」中村亮土選手が秘話 子どもにエールも - 岐阜新聞 EXILE TRIBE、リズムゲームアプリ『EXtreme LIVES』テレビCM&事前登録受付開始(Billboard JAPAN) - Yahoo!ニュース - Yahoo!ニュース 危険運転 ゲームで体感 - 読売新聞 可愛い見た目で超絶難度なゼリー融合パズルゲーム「ユウゴウパズル」プレイレビュー - GIGAZINE きのこ・たけのこ戦争が『グラブル』で勃発!?ゲーム内で「きのこの山」vs「たけのこの里」が激突(インサイド) - Yahoo!ニュース - Yahoo!ニュース 福原遥、焼肉弁当を目指し『ぷよぷよ!!クエスト』のゲーム実況に挑戦(エンタメNEXT) - Yahoo!ニュース - Yahoo!ニュース サバイバル番組「GODIVA SHOW」12人がカップルゲームに挑戦…初の脱落者にスタジオも驚き(Kstyle) - Yahoo!ニュース - Yahoo!ニュース 好評につき第2弾開催!オンライン・クレーンゲームで自宅から全国を旅する、全国ご当地ラーメンフェア開催:時事ドットコム - 時事通信 今売れてるPC対応ゲームコントローラーTOP10、ロジクールのゲームパッドが首位 2021/12/11(BCN) - Yahoo!ニュース - Yahoo!ニュース 【リサーチ】『あなたが最も期待する2022年新作ゲーム』結果発表 - Game*Spark ゲームの国民的ザコキャラといえば?3位「ワドルディ」、2位「クリボー」、気になる1位は.....?【アンケ結果発表】(インサイド) - Yahoo!ニュース - Yahoo!ニュース 元DICEの開発者たちが手がける新作ゲーム『ARC Raiders』はSFテイストのCo-Op型TPS(IGN JAPAN) - Yahoo!ニュース - Yahoo!ニュース 全長500キロのリアル「人生ゲーム」3日間かけて完走 2万人から選ばれた参加者、多彩なアクティビティに大満足(まいどなニュース) - Yahoo!ニュース - Yahoo!ニュース 【ReAL-e】もう誰も信じられない!? ダマし合いゲーム「Among Us」 GAG・ひろゆきとプレイ! - GAMEクロス ゲーム配信の確かな技術が光る にじさんじ・夜見れなの次なる挑戦(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース miHoYoの女性向け恋愛ミステリーゲーム『未定事件簿』、12月11日よりイベント『遊園すごろく』開催!左京静真(CV 諏訪部順一)、和泉景(CV 石川界人)、森月黎(CV 福山潤)の限定カード登場! - PR TIMES 話題沸騰中のNFTゲーム”クリプトモン”が待望の新フェーズへ。12月中旬にリリース決定! - PR TIMES マイクロソフト、Xbox独占ゲームのiPhone向け提供をアップルに断られたと判明 - Engadget日本版 【ふるさと納税】ゲームファン・アニメファンも注目! ふるさと納税のおすすめ返礼品をピックアップして紹介(ファミ通.com) - Yahoo!ニュース - Yahoo!ニュース 今季12回目のワンスコアゲームで「また楽しい夜になった」とバイキングスHCジマー - NFL日本公式サイト 異色のゲーム対談が実現! 野田クリスタルさんと桜井政博さんがSpotifyのゲーム音楽対談企画でゲーム制作の裏側や時代背景を語る【前編】 - ファミ通.com 実行委員長は高校生。石垣島でSDGsシンポジウムとゲーム大会(Forbes JAPAN) - Yahoo!ニュース - Yahoo!ニュース 変わる麻雀のイメージ/知的ゲーム 交流の場 お金賭けない/弘大に公認サークルも(Web東奥) - Yahoo!ニュース - Yahoo!ニュース 関西スーパー統合「ルーズヴェルトゲーム」の勝者は誰か 最高裁の判断に注目集まる(弁護士ドットコムニュース) - Yahoo!ニュース - Yahoo!ニュース 12月17日からのハッピーセットはパーティーゲームとどうぶつブロック!(アニメージュプラス) - Yahoo!ニュース - Yahoo!ニュース ソニーのゲーム部門、「ゴッド・オブ・ウォー」開発の米社を買収(ロイター) - Yahoo!ニュース - Yahoo!ニュース 事業買収例も出た「ゲームの習い事」とは?数字で見てみる(LIMO) - Yahoo!ニュース - Yahoo!ニュース 「イカゲーム」が米国のトップ10から脱落、公開3カ月で初(Forbes JAPAN) - Yahoo!ニュース - Yahoo!ニュース 選択肢を間違えたら即サンバ 中毒性たっぷりの「マツケンサンバ」ゲームが話題沸騰中(ENCOUNT) - Yahoo!ニュース - Yahoo!ニュース ゲームの開発現場 のぞいてみたら|サイカルジャーナル|NHK NEWS WEB - NHK NEWS WEB ゲームの時も一緒だニャン……愛猫がポッケに入るパーカを発売(朝日新聞デジタル) - Yahoo!ニュース - Yahoo!ニュース 4Xリアルタイムストラテジーゲーム『Dune Spice Wars』発表。フランク・ハーバート氏のSF小説の金字塔『DUNE』をゲーム化(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 「Star Wars」ゲームの新作、外山圭一郎による新作ホラー『野狗子 Slitterhead』などThe Game Awards 2021発表まとめ(IGN JAPAN) - Yahoo!ニュース - Yahoo!ニュース 「リネージュW」プレイレポート。オンラインゲーム黎明期の名作が,世界中のプレイヤーと遊べる新作スマホゲームとなった - 4Gamer.net かわいいモンスターを収集するポップなオープンワールドゲーム『ドケビ』の新たなPVが公開。テーマソング『ROCKSTAR』にあわせてキュートなキャラクターたちが生き生きとしたダンスを披露(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 『ワンダーウーマン』の新作ゲームが発表。『シャドウ・オブ・モルドール』シリーズに実装されたNPCの人格形成システム「ネメシスシステム」を搭載(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース IGN JAPAN ゲームオブザイヤー2021 今年のベストゲームTOP 10 - IGN Japan バトルロイヤル型ゲームの火付け役『PUBG BATTLEGROUNDS』2022年1月12日から基本プレイ無料に。既存ユーザーにはアップグレード機能を無料で提供(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 「Google Play ゲーム」がWindows PCに対応 2022年から提供予定 - - ITmedia PC USER 上村さん、いつまでも飽きないゲームはできますか?|サイカルジャーナル|NHK NEWS WEB - NHK NEWS WEB Epic Gamesストア、来週『シェンムーⅢ』ほか13本の無料ゲーム配布の噂 - Engadget日本版 独ゲーム会社、中国を「西台湾」と表記…「中国市場は必要ないのか」猛反発(中央日報日本語版) - Yahoo!ニュース - Yahoo!ニュース Xperia 1 IIIのゲーム支援機能が半ばチートレベルで凄い|ベストバイ2021 - Engadget日本版 テンセント新作PvPvEゲーム『SYNCED Off-Planet』敵に焦点を当てたトレイラー公開【TGA 2021】(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 新作対戦格闘ゲーム『KOF XV』の第2回オープンβテストが、PS5/PS4を対象に12月18日から開催決定!(アスキー) - Yahoo!ニュース - Yahoo!ニュース 『スーサイド・スクワッド:キル・ザ・ジャスティス・リーグ』ゲームプレイの様子も確認できる最新映像が公開【The Game Awards 2021】(ファミ通.com) - Yahoo!ニュース - Yahoo!ニュース ウエスタンスーパーヒーローACT『Evil West』ゲームプレイトレイラー公開【TGA 2021】(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 疫病をテーマとしたアドベンチャーゲーム『A Plague Tale Requiem』の最新映像が公開。前作から成長した姉弟の姿や、建物さえ飲み込む悪夢のようなネズミの大群も(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース TVやスマホの平面的ゲームだけでなく、「サイコロキャラメル」で空間的に遊ぼう!(朝日新聞EduA) - Yahoo!ニュース - Yahoo!ニュース リブート版『Saints Row』新たなゲームプレイトレイラー公開!【TGA 2021】(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 鳥や物体に乗り移って冒険!アクションADV『Tchia』ゲームプレイトレイラー【TGA 2021】(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 新作サバイバルゲーム「Nightingale」発表。ヴィクトリア朝をベースにしたファンタジー世界が舞台 - 4Gamer.net カードゲーム「モリモン」話題 身近な植物組み合わせモンスターに 印刷まで能力分からずドキドキ(神戸新聞NEXT) - Yahoo!ニュース - Yahoo!ニュース マニアの情熱が作りだしたミニサイズの“自宅ゲームセンター”「好きなものに囲まれて過ごしたい」(よろず~ニュース) - Yahoo!ニュース - Yahoo!ニュース 新作スター・ウォーズゲーム『Star Wars Eclipse』発表!―Quantic Dream手掛けるアクションADV【TGA 2021】(Game Spark) - Yahoo!ニュース - Yahoo!ニュース 中世マルチプレイ剣術対戦ゲーム『Chivalry 2』が無料トライアルの実施を開始。クリスマス仕様のアップデートなど追加コンテンツの発表も(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース スクエニとプラチナゲームズによる3Dアクション『バビロンズフォール』のゲーム映像が公開、発売日は2022年3月(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 2021年、世界的に急成長したアプリとは? ゲームカテゴリでは原神やウマ娘が台頭(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース FC版初代『ファミスタ』が発売35周年。野球ゲームブーム巻き起こした超定番ソフト。3900円というお手ごろ価格も魅力だった【今日は何の日?】(ファミ通.com) - Yahoo!ニュース - Yahoo!ニュース ドット絵SFノワールADV『Lacuna』の家庭用ゲーム機版が12月23日に配信!未来の世界で捜査官になり、惑星間戦争を防げ(IGN JAPAN) - Yahoo!ニュース - Yahoo!ニュース 「Xゲーム」日本初開催 来年4月ZOZOマリンで 五輪金の四十住さくら「驚きと興奮」(日本テレビ系(NNN)) - Yahoo!ニュース - Yahoo!ニュース ゲームで憧れのユーチューバーに! 『Youtubers Life 2』プレイレビュー。ゲームだとわかっていても自分の動画の再生数が伸びたらやっぱりうれしい!(ファミ通.com) - Yahoo!ニュース - Yahoo!ニュース 現実とゲームが連動!? 架空の都市伝説“パルファン様”の真相に迫るホラーゲーム『パルフォン』がSteamで発売 - ファミ通.com 知る人ぞ知る傑作インディーゲーム「OneShot」が家庭用移植決定 「絶対に移植不可能」と言われた作品がついに(ねとらぼ) - Yahoo!ニュース - Yahoo!ニュース ゲーム・ネット依存症を防げ 家庭・学校が取り組むメディアコントロール(BSN新潟放送) - Yahoo!ニュース - Yahoo!ニュース インディーアドベンチャーゲーム『シロナガス島への帰還』のクラウドファンディングが、目標額の1323%である2647万円を達成(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 「ゲームセンターCX」でゲームキューブ初登場! 「スーパーモンキーボール」回は12月9日24時放送(Impress Watch) - Yahoo!ニュース - Yahoo!ニュース ゲーム業界、NFT採用に賛否両論? 転売目的が主な市場は1兆ドルに成長(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース なぞって集めるパズルゲーム『あつまれモルカー!PUI PUI パズル』iOS/Android向けにリリース。可愛いモルカーたちを集めてお世話しよう(電ファミニコゲーマー) - Yahoo!ニュース - Yahoo!ニュース 「バイオハザード」新作、ゲームとの関連性を示唆する場面写真 プロデューサー「かなり忠実」(映画.com) - Yahoo!ニュース - Yahoo!ニュース かつて子どもの“通過儀礼”だったゲーセン文化…苦境に立つ老舗ゲームニュートン代表の想い「年齢、学歴、社会的地位が関係ない唯一の場所」(オリコン) - Yahoo!ニュース - Yahoo!ニュース ゲーム・ネットばかりの子どもにイライラしない、「ちょうどよい」約束の作り方とは?専門家に聞きました(ベネッセ 教育情報サイト) - Yahoo!ニュース - Yahoo!ニュース 『日本最大級のアナログゲームの祭典! ゲームマーケットがアツい!』〜Hikaru//の自由綴文 9頁目〜 - http //spice.eplus.jp/ ライトセーバーを振り回す姿も!「Star Wars Hunters」公式ゲームプレイトレーラーが公開(Impress Watch) - Yahoo!ニュース - Yahoo!ニュース ゲーム業界向けオンラインフォーラム「Game of Dreams」をゲームエイトが開催。初回は國光宏尚氏をゲストに『転換点となる2022年を完全予測。大変革時代のキーワードを読み解く。』をテーマに討論 - PR TIMES 月額1000円程度の「ゲームのサブスク」を満喫できないユーザーたちの声(マネーポストWEB) - Yahoo!ニュース - Yahoo!ニュース ゲームの代わりにTikTok?厳しすぎる中国ゲーム規制で起きたこと(JBpress) - Yahoo!ニュース - Yahoo!ニュース スイッチなどで「幻のアーケードゲーム」ラッシュ!? いわくつきの作品や20年越しの新作も…(インサイド) - Yahoo!ニュース - Yahoo!ニュース ゲーセンの経営を支えるクレーンゲーム マニアも知らない「グレーな実態」(NEWSポストセブン) - Yahoo!ニュース - Yahoo!ニュース 2度とこんなゲームは現れない? 『十三機兵防衛圏』奇跡の立体構造体験(インサイド) - Yahoo!ニュース - Yahoo!ニュース 「Among US!」を抑え1位になったゲームとは? 「App Store」の2021年無料ゲームランキング(ITmedia NEWS) - Yahoo!ニュース - Yahoo!ニュース
https://w.atwiki.jp/daiamondfox/pages/53.html
Elizabeth Jean Carroll (born December 12, 1943) is an American journalist, author, and advice columnist, and is an anti-Trump activist.Her second job is as a visionary. Personal life CareerReligion of belief anti-Trump. Sexual abuse and defamation by Donald TrumpThe majority of jurors are registered Democrats. x7. Change a statement. The case is fully time-barred. Cases already decided before the trial. Retrospective law. Personal life E. Jean Carroll is a Democratic Party donor. Reid Hoffman is a friend of Jeffrey Epstein. He is funding E. Jean Carroll's lawsuit.(*1) Career E. Jean Carroll has 'sexual fantasies about Barack Obama and Russian President Vladimir Putin'. She also fantasises about having sexual relations with 'Ryan Seacrest, Dick Cheney and Steve Jobs'.(*2) (E. Jean Carroll は、「バラク・オバマ、ロシアのプーチン大統領との性的な空想」を行っている。彼女は、「ライアン・シークレスト、ディック・チェイニー、スティーブ・ジョブズ」とも、性的関係を持つことを空想している。) Religion of belief anti-Trump. E. Jean Carroll is an anti-Trump activist.She is a fantasist and in August 2012she posted on Facebook "fantasies of having sex with Donald Trump and her own sexual fantasies". E. Jean Carroll filed a lawsuit claiming that she was 'raped by President Trump in 1996 when she was 53 years old'.However, E. Jean Carroll had never gone to the police before filing the lawsuit. E. Jean Carroll has also been a relentless anti-Trump campaigner on social networks in the past in a 2018 tweet, she forced female voters who supported the MAGA movement to align themselves with her religion (anti-Trump activities). E. Jean Carroll's activism has been funded by the wealthy Reid Hoffman (founder of LinkedIn Corporation).(*3) (E. Jean Carroll は、反トランプ活動家である。 空想癖があり、2012年8月に、「ドナルド・トランプとセックスする妄想をし、自身の性的空想」をFacebookに投稿していた。 E. Jean Carroll は、「1996年、53歳の時に、トランプ大統領にレイプされた」と主張し、裁判を起こした。 しかし、E. Jean Carroll は、裁判を提起するまで、警察に相談した事は一度も無かった。 また、E. Jean Carroll は、過去のSNSにおいて、執拗に反トランプ運動を行なっていた。2018年のツイートにおいては、MAGA運動を支持している女性有権者に対して、自身の信仰する宗教(反トランプ活動)に同調する様に強要していた。) Sexual abuse and defamation by Donald Trump In 2019, Elizabeth Jean Carroll saidduring an appearance on CNN that "I think most people think of rape as sexy".(*4) The majority of jurors are registered Democrats. x7. According to voter registration, the jury in the E. Jean Carroll trial was 7 1 registered Democrat.The number of registered Democrats is seven times the number of unregistered Democrats. Trump's defence team was not even allowed to know the names of the jurors before the trial.(*5) (E. Jean Carroll裁判における陪審員は、7 1の割合で民主党登録) Change a statement. E. Jean Carroll's testimony was changed twice. She claimed that the year of her own victimisation was 1994. But 1994 was changed to 1995. She then changed 1995 to 1996. There is no physical evidence (camera video recordings) to corroborate E. Jean Carroll's testimony. There is no physical evidence and no circumstantial evidence (witnesses).(*6) The case is fully time-barred. Cases already decided before the trial. Retrospective law. In New York State, the statute of limitations for filing a civil lawsuit for sexual assault is generally three years. It was 2019 when Carroll started making noise about her rape story (1996). This means that even if her story is true, the statute of limitations has run out.Kathy Hochul (Governor of NY) passed the Adult Survivors Act in 2022.E. Jean Carroll helped pass this law. In short, the law used in this court case is a retroactive law. A law that negates the very existence of the law itself.(*7) (NY州において、性的暴行に関する民事訴訟を起こすことができる時効は、一般的に3年。 キャロルがレイプ話(1996年)を騒ぎ出したのは、2019年。つまり、仮に彼女の話が事実であってとしても、完全に時効が成立している。 Kathy Hochul(NY州知事)は、2022年に「The Adult Survivors Act 」に成立させた。 E. Jean Carroll は、この法律に制定に協力している。 要するに、この裁判で使用された法律は、遡及法。法律の存在そのものを全否定した法律。)
https://w.atwiki.jp/bambooflow/pages/297.html
影行列を使った簡易シャドウイング 影行列を使った簡易シャドウイング影行列 ソースコード 参考 OpenGL3.x GLUT (freeglut3.7) GLM 0.9.0.6 GL3W (or GLEW 1.5.7) 影行列 // // - l 光源位置 // - g 地面の位置 // - n 地面の法線ベクトル // glm mat4 shadowMatrix(glm vec3 l, glm vec3 g, glm vec3 n) { float d, c; n = -n; d = glm dot(n,l); c = glm dot(g,n) - d; glm mat4 m( glm vec4( l.x*n.x+c, l.y*n.x, l.z*n.x, n.x ), glm vec4( l.x*n.y, l.y*n.y+c, l.z*n.y, n.y ), glm vec4( l.x*n.z, l.y*n.z, l.z*n.z+c, n.z ), glm vec4( -l.x*c-l.x*d, -l.y*c-l.y*d, -l.z*c-l.z*d, -d ) ); return m; } 通常の計算方法 (ProjectionMatrix) * (ViewMatrix) * (ModelMatrix) * 頂点座標 影の計算方法 (ProjectionMatrix) * (ViewMatrix) * (ShadowMatrix) * (ModelMatrix) * 頂点座標 今回は、(ShadowMatrix) * (ModelMatrix)をCコード側で計算し、残りをシェーダ側で計算します。 ソースコード #include cstdlib #include iostream #include list //#include GL/glew.h #include GL3/gl3w.h #include GL/glut.h #include "load_shader.h" // OpenGL Mathematics Library #include glm/glm.hpp #include glm/gtc/matrix_projection.hpp #include glm/gtc/matrix_transform.hpp #include glm/gtx/transform2.hpp #include glm/gtc/type_ptr.hpp // prototype void reshape(int w, int h); void init(); void timer(int t ); void display(); class Cube { private struct Vertex_t { GLfloat position[3]; // (vx,vy,vz) GLfloat normal[3]; // (nx,ny,nz) }; GLuint vao[1]; // Vertex array buffer objects GLuint eao[1]; // array buffer objects for elements GLint positionLocation; GLint normalLocation; GLuint numIndecies; glm mat4 modelMat; glm vec3 position; glm vec3 size; glm vec3 angle_axis; float angle; public void setup(GLuint programObj) { GLuint offset; GLuint vbo[1]; Vertex_t vertex[] = { // position(x,y,z) , normal(x,y,z) { { -0.5f, -0.5f, -0.5f }, { +0.0f, -1.0f, +0.0f } }, { { -0.5f, -0.5f, +0.5f }, { +0.0f, -1.0f, +0.0f } }, { { +0.5f, -0.5f, +0.5f }, { +0.0f, -1.0f, +0.0f } }, { { +0.5f, -0.5f, -0.5f }, { +0.0f, -1.0f, +0.0f } }, { { -0.5f, +0.5f, -0.5f }, { +0.0f, +1.0f, +0.0f } }, { { -0.5f, +0.5f, +0.5f }, { +0.0f, +1.0f, +0.0f } }, { { +0.5f, +0.5f, +0.5f }, { +0.0f, +1.0f, +0.0f } }, { { +0.5f, +0.5f, -0.5f }, { +0.0f, +1.0f, +0.0f } }, { { -0.5f, -0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { -0.5f, +0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { +0.5f, +0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { +0.5f, -0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { -0.5f, -0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { -0.5f, +0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { +0.5f, +0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { +0.5f, -0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { -0.5f, -0.5f, -0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, -0.5f, +0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, +0.5f, +0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, +0.5f, -0.5f }, { -1.0f, +0.0f, +0.0f } }, { { +0.5f, -0.5f, -0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, -0.5f, +0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, +0.5f, +0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, +0.5f, -0.5f }, { +1.0f, +0.0f, +0.0f } } }; GLuint indices[] = { 0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 15, 14, 12, 14, 13, 16, 17, 18, 16, 18, 19, 20, 23, 22, 20, 22, 21 }; numIndecies = sizeof(indices)/sizeof(GLuint); positionLocation = glGetAttribLocation(programObj, "a_position"); normalLocation = glGetAttribLocation(programObj, "a_normal"); // Create and bind VAO glGenVertexArrays(1, vao); glBindVertexArray(vao[0]); // Create VBO glGenBuffers(1, vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo[0]); glBufferData(GL_ARRAY_BUFFER, sizeof(vertex), vertex, GL_STATIC_DRAW); offset = 0; glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex_t), (const void*)offset); offset += 3 * sizeof(GLfloat); glVertexAttribPointer(normalLocation, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex_t), (const void*)offset); // Enable Attribute glEnableVertexAttribArray(positionLocation); glEnableVertexAttribArray(normalLocation); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); glDeleteBuffers(1, vbo); // Create Index Buffer glGenBuffers(1, eao); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao[0]); glBufferData(GL_ELEMENT_ARRAY_BUFFER, numIndecies*sizeof(GLuint), indices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); angle = 0.0; } void render() { glBindVertexArray(vao[0]); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao[0]); glDrawElements(GL_TRIANGLES, numIndecies, GL_UNSIGNED_INT, 0); } void update() { modelMat = glm mat4(1.0f); modelMat = glm translate(modelMat, position); modelMat *= glm rotate(angle, angle_axis); } glm mat4 getMatrix() { return modelMat; } void setAngle(float a, float ax, float ay, float az) { angle = a; angle_axis = glm vec3(ax, ay, az); } void setPosition(float x, float y, float z) { position = glm vec3(x, y, z); } void setSize(float x, float y, float z) { size = glm vec3(x, y, z); } }; /////////////////////////////////////////////////////////////////////////////// // // for GLSL // GLuint programObject; GLint modelMatrixLocation; GLint viewMatrixLocation; GLint projectionMatrixLocation; GLint shadowEnableLocation; GLint lightPosLocation; glm mat4 ViewMatrix; glm mat4 ProjectionMatrix; // // Model // Cube cube; glm vec3 light_pos(10.0, 10.0, 0.0); // 光源位置 glm vec3 ground_pos(0.0, 0.0, 0.0); // 地面の位置 glm vec3 cube_pos(0.0, 2.0, 0.0); // // calc shadow matrix // // - l light position // - g ground position // - n ground normal vector // glm mat4 shadowMatrix(glm vec3 l, glm vec3 g, glm vec3 n=glm vec3(0.0,1.0,0.0)) { float d, c; n = -n; d = glm dot(n,l); c = glm dot(g,n) - d; glm mat4 m( glm vec4( l.x*n.x+c, l.y*n.x, l.z*n.x, n.x ), glm vec4( l.x*n.y, l.y*n.y+c, l.z*n.y, n.y ), glm vec4( l.x*n.z, l.y*n.z, l.z*n.z+c, n.z ), glm vec4( -l.x*c-l.x*d, -l.y*c-l.y*d, -l.z*c-l.z*d, -d ) ); return m; } // // initialize // void init() { glClearColor(0.5, 0.5, 0.5, 1.0); glClearDepth(1.0f); ViewMatrix = glm lookAt( glm vec3(4.0f, 5.0f, 6.0f), glm vec3(0.0f, 2.0f, 0.0f), glm vec3(0.0f, 1.0f, 0.0f) ); glUniformMatrix4fv(viewMatrixLocation, 1, GL_FALSE, glm value_ptr(ViewMatrix)); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); // // GLSL initialize // std list GLuint shaderList; shaderList.push_back( loadShaderFromFile(GL_VERTEX_SHADER, "simple.vert") ); shaderList.push_back( loadShaderFromFile(GL_FRAGMENT_SHADER, "simple.frag") ); programObject = createProgram(shaderList); modelMatrixLocation = glGetUniformLocation(programObject, "modelMatrix"); viewMatrixLocation = glGetUniformLocation(programObject, "viewMatrix"); projectionMatrixLocation = glGetUniformLocation(programObject, "projectionMatrix"); shadowEnableLocation = glGetUniformLocation(programObject, "shadowEnable"); lightPosLocation = glGetUniformLocation(programObject, "lightPos"); glBindFragDataLocation(programObject, 0, "fragColor"); } void reshape(int w, int h) { glViewport(0, 0, w, h); ProjectionMatrix = glm perspective(30.0f, (float)w/(float)h, 1.0f, 100.0f); } void timer(int t) { glutPostRedisplay(); glutTimerFunc(t, timer, 17); } // // Main Loop // void display() { static float angle = 0.0; cube.setAngle(angle, 0.0f, 1.0f, 0.0f); cube.update(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(programObject); glUniformMatrix4fv(viewMatrixLocation, 1, GL_FALSE, glm value_ptr(ViewMatrix)); glUniformMatrix4fv(projectionMatrixLocation, 1, GL_FALSE, glm value_ptr(ProjectionMatrix)); glUniform3fv(lightPosLocation, 1, glm value_ptr(light_pos)); // // Draw Cube // glUniform1i(shadowEnableLocation, 0); glUniformMatrix4fv(modelMatrixLocation, 1, GL_FALSE, glm value_ptr(cube.getMatrix())); cube.render(); // // Draw Shadow // glUniform1i(shadowEnableLocation, 1); glm mat4 modelMatrix = shadowMatrix( light_pos, ground_pos, glm vec3(0.0,1.0,0.0) ); modelMatrix = modelMatrix * cube.getMatrix(); glUniformMatrix4fv(modelMatrixLocation, 1, GL_FALSE, glm value_ptr(modelMatrix)); cube.render(); glUseProgram(0); glutSwapBuffers(); angle += 1.0; if (angle 180.0) angle = 0.0; } int main(int argc, char *argv[]) { glutInit( argc, argv); glutInitWindowSize(400, 300); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("OpenGL with GLEW"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutTimerFunc(100, timer, 17); // GLenum err; // //glewExperimental = GL_TRUE; // err = glewInit(); // if (err != GLEW_OK) { // std cerr "GLEW error " glewGetErrorString(err) "\n"; // std exit(1); // } // if (!glewIsSupported("GL_VERSION_3_2")) { // std cerr "OpenGL 3.2 not supported.\n"; // std exit(1); // } if (gl3wInit()) { std cerr "failed to initialize OpenGL\n"; return 1; } if (!gl3wIsSupported(3, 2)) { std cerr "OpenGL 3.2 not supported\n"; return 1; } init(); // // setup Cube // cube.setup(programObject); cube.setAngle(0.0, 0.0f, 1.0f, 0.0f); cube.setPosition(cube_pos.x, cube_pos.y, cube_pos.z); glutMainLoop(); return 0; } load_shaderは、ロードシェーダのものを使っています。 バーテックスシェーダ #version 330 uniform mat4 modelMatrix; // モデル・マトリックス uniform mat4 viewMatrix; // ビュー・マトリックス uniform mat4 projectionMatrix; // 射影・マトリックス uniform vec3 lightPos; // 光源位置 uniform int shadowEnable; // 0 Normal, 1 影 vec4 diffuse = vec4(0.3, 0.3, 0.6, 1.0); // diffuse color in vec3 a_position; in vec3 a_normal; out vec4 v_color; void main(void) { mat4 modelViewMatrix = viewMatrix * modelMatrix; vec3 lightVec = vec3(viewMatrix * vec4(lightPos.xyz,1.0)); mat3 n_mat = mat3( transpose( inverse(modelViewMatrix) ) ); // normal Matrix vec3 P = vec3(modelViewMatrix * vec4(a_position,1.0)); // Eye vector vec3 N = normalize(n_mat * a_normal); // normal direction vec3 L = normalize(lightVec - P); // light direction if (shadowEnable==1) { v_color = vec4(0.2, 0.2, 0.2, 1.0); // shadow color } else { v_color = diffuse * dot(N,L); } gl_Position = projectionMatrix*modelViewMatrix*vec4(a_position.xyz, 1.0); } フラグメントシェーダ #version 330 in vec4 v_color; out vec4 fragColor; void main(void) { fragColor = v_color; } 参考 http //www.devmaster.net/articles/shadowprojection/
https://w.atwiki.jp/ff11fullvoice/pages/42.html
青ポンZ 声 出演作品 三国ミッション「フィック」(マック爺) プロマシアミッション05(シド) プロマシアミッション07(クッキー) 学者AFクエ3「真紅のグリモア」後半(Carrel HUM♂F3A) 過去サンド連続クエ2「オーク軍団掃討作戦」前編(チャズゲッグ) アトルガンクエ「友情のカルテ」後半(ラティーブ) ババン・ナ・ウェイレアのぼうけん1(Darach) ババン・ナ・ウェイレアのぼうけん2(Darach) ババン・ナ・ウェイレアのぼうけん3(Darach) ババン・ナ・ウェイレアのぼうけん4(Darach) ババン・ナ・ウェイレアのぼうけん5(Darach)
https://w.atwiki.jp/vocaloidenglishlyric/pages/291.html
【Tags Gumi Orebanana-P OrebananaP Rin kemu tI I】 Original Music Title インビジブル Invisible (Inbijiburu) Music Lyrics written by kemu Music arranged by kemu Gumi s voice edited by kemu and Rin s voice edited by 俺バナナP(Orebanana-P) Singers Gumi (Megpoid), 鏡音リン (Kagamine Rin) Click here for the Japanese Lyrics English Lyrics (translated by haru47): An unbelievable phenomeno, it seems that I became an invisible person I bit back hurray And took out suspicions that what made me so, not this or not that Sorry for being a fool sticking to only one single idea Well, it can t be helped, can t be helped. Making an instinct for self-preservation tough Leaving the annoying ethic aside This and that, even earthly desires or obsession is lively Backbiting that I didn t want to hear and The kissing scene that stuck in my mind Resetting is another topic I have a headache now Can you see me who you hate, hate, really hate? Runpappa All you want is a skew that you can lean against as if you knew nothing, nothing Optimism, optimism, philosophy, optimism, philosophy, an optimistic outlook, I m an invisible person Hey, there s no point in telling nonsense if I m invisible Opacity, contact and conductor, lead me as I m being like this The situation is cool just like Selkirk was Not this, not that, this or that, I ve had enough of them Question or complaint of exclusive emotional reasoning It seems that my one-way traffic friend is blunt What an adventurous nightlife! You could be the least harmless and the most arrogant trash in the world, I guess. I m not there I guess no one notices that Well, I forgot it is natural that I m not there, right? Do you remember me who you hate, hate, really hate? Runpappa Won t you stop enjoying your life as if you knew nothing, nothing? Optimism, optimism, philosophy, optimism, philosophy, an optimistic outlook, I m an invisible person Hey, there s no point in getting rid of a bad habit of biting my nails by now Before my father died a peaceful death He used to laugh in a hoarse voice I see, I see, no wonder I can t laugh cause I m all alone I who you hate, hate, really hate burst. Runpappa Nonsense cannot be heard Thank you for your bashing away Please do not forget about me who you hate, hate, really hate Sorry, even though, please let me sit down, even in the corner is fine with me At an intersection, a businessman who was in a hurry in the crowd Passed by me Now He surely got out of the way of me Now I m here Romaji lyrics (transliterated by haru47): tondemonai genshou douyara toumei-ningen ni nari mashi ta banbanzai wa nomi konde aa demo nai kou demo nai genin suisoku o buchimake te hitotsu-oboe de warukatta ne maa shou ga nai shou ga nai bouei-hon nou wa shitatakani kemu tai rinri wa oitoi te anna koto sonna koto bon nou moushuu mo hatsuratsuto kiki taku nakatta kageguchi to yakitsuita kisu shiin risetto wa betsu no hanashi mou atama ga itai yo daikirai kirai kirai na boku ga mie te masu ka runpappa shiran shiran kao shite motareru naname ga hoshii dake rakkan rakkan takkan rakkan takkan rakkanshi boku wa toumei-ningen mienai kuse shite yomayoigoto tare te mo imi nai jan kondaku to kontakuto kondakuta- kon na boku o michibii te seruka-ku bari no ikina shichueishon aa demo nai kou demo nai an na koto kon na koto mou takusan tsubekobe haitateki kanjou-ron douyara ippou-tsuukou no otomodachi wa nibe mo naku zuibun daitana yoasobi ne sekai-ichi mugaide nao katsu boujyakubujina gomi ni wa nare ta deshou sokoni boku ga inai koto dare mo kizui cha inai deshou somosomo inai hou ga atarimae deshita ne daikirai kirai kirai na boku o oboete masuka runpappa shiran shiran kao shite tanoshiku ikiru no yamete kun nai? rakkan rakkan takkan rakkan takkan rakkanshi boku wa toumei-ningen tsume kamu warui kuse imasara yame te mo imi nai jan daioujou o mae ni shi te shagareta roufu wa waratte ta souka souka douri de hitori ja wara e nai dai kirai kirai kirai na boku ga hari sake te runpappa todoka nai zaregoto naisho no warukuchi arigatou daikirai kirai kirai na boku o douka wasure nai de gomen ne sore demo sumikko de ii kara suwara se te kousaten hitogomi no man naka o isogu sarari-man ga surechigaizama ima hanshin de tashika ni yoketanda ima boku wa koko ni
https://w.atwiki.jp/ypen/pages/79.html
Japan switches tacticts on H1N1 flu Japanese health authorities are switching tactics to combat the new H1N1 influenza strain. They will no longer try to trace every case, but focus efforts on preventing large-scale outbreaks in schools, workplaces, and care facilities. Doctors and medical institutions in Japan have so far been required to report every case of the new flu, and submit samples of the flu virus from each patient for DNA tests, out of concern that the virus could mutate into a more harmful and drug-resistant strain. But the Health, Labor and Welfare Ministry said on Thursday that it had abandoned this approach. It said most of the patients confirmed in Japan so far have had relatively mild symptoms and the number of patients now stands at around 4,700. The Ministry says medical institutions and local authorities will now be required to report cases and carry out DNA tests where at least 10 people in one location are suspected to have been infected. About 5,000 medical institutions around Japan are to keep monitoring infections in their respective areas, in order to look out for a major epidemic of the new flu. ARF statement lists both sides views on N.Korea The chairman s statement from the just-ended meeting of the ASEAN Regional Forum lists participants criticisms of North Korea as well as the country s own views. Foreign ministers and other officials from 27 ARF members ended a meeting in the Thai resort island of Phuket on Thursday. North Korea s nuclear development was a main topic on the agenda. The chairman s statement released after the meeting noted criticism by several countries of North Korea s recent nuclear test and missile launches as well as the countries call for North Korea to return to the six-party nuclear talks. It also listed a North Korean view that holds what it sees as a hostile US policy responsible for the deterioration of the situation on the Korean Peninsula, as well as North Korea s insistence that the six-party talks are over. Thailand, who chaired the meeting, is thought to have chosen to list both sides views out of hopes of keeping dialogue with North Korea alive. The chairman s statement also calls for the military government of Myanmar to release all political prisoners, including Aung San Suu Kyi, and hold a free and fair election next year. Keating US prepared for contingencies in N.Korea The top American military commander in the Pacific has admitted to US preparations for fallout in the event of a leadership change in North Korea. Admiral Timothy Keating spoke to reporters at the Defense Department on Wednesday. Keating noted that the health of the North s leader Kim Jong Il appears so poor that he looks like a different man. He added that it is unclear if Kim s deterioration was caused by a stroke or a more serious problem. Keating said he does not know what will happen if Kim cedes power or is no longer capable of exercising control. He said the US forces in South Korea and elsewhere have plans in place if the president gives the order in the event of an uncertain succession in the North. Japan s trade surplus increases in June Japan s trade surplus in June was 5 times higher compared to the previous year, marking the first increase in 20 months. This comes as exports fell less than imports. The Finance Ministry said on Thursday that the trade ledger was in the black by 508 billion yen, or more than 5 billion US dollars. Exports in June fell over 35 percent year-on-year to about 49 billion dollars. This was due mainly to weak demand for automobiles to the United States and steel products to Asia. Imports, meanwhile, dropped at a faster pace of nearly 42 percent to about 43 billion dollars. This is largely attributed to a plunge in oil prices. However, the trade surplus in the first six months of this year was about 88 million US dollars, which is the lowest figure ever for a half-year period. Obama renews pledges for withdrawal from Iraq US President Barack Obama and Iraqi Prime Minister Nuri al-Maliki have agreed that they can complete a withdrawal of US troops from Iraq by the end of 2011 as agreed by the 2 countries. Obama held talks with Maliki in Washington on Wednesday. At a news conference after the talks, Obama noted that last month s withdrawal of US combat troops from urban areas clearly shows the United States continues to respect the sovereignty of the Iraqi government. Obama expressed confidence that the United States is on track to withdraw all troops by the end of next summer and all US forces by the end of 2011. Maliki said his country s security forces are highly capable, denying views that Iraqi troops are unable to maintain peace and security after US troops leave the country. The Iraqi prime minister asked for US cooperation in having UN sanctions lifted. The sanctions were imposed following the invasion of Kuwait by the former Iraqi government led by Saddam Hussein. Those sanctions oblige Iraq to pay part of its oil revenues to Kuwait. Obama said Iraq should not be burdened by past wrongdoing committed under the dictatorship, and suggested he would cooperate in the removal of the sanctions.
https://w.atwiki.jp/sc-02c/pages/17.html
ドコモオプション品 卓上ホルダ キャリングケース サウンドリーフプラス(骨伝導レシーバマイク 02) FOMA 充電microUSB変換アダプタ HDMI変換ケーブル ジャケット型電池パック SC01 Docomoから純正オプション品として、ジャケット型電池パック SC01が発売された。サムスン製。 価格は5250円。容量は1300mAhで、内蔵バッテリー1650mAhと合わせて2950mAhとなる。 バッテリーにバッテリーを繋いだ形で常時充電される為、充電完了通知が数分おきに五月蝿いとの声も。 ケース サムスン公認サプライヤー Anycall/Anymode PLEOMAX SGP http //www.sgp-store.jp/?mode=cate cbid=1034418 csid=0 バッファロー http //buffalo-kokuyo.jp/products/phone/case_docomo/ ラスタバナナ http //www.rastabanana.com/products/list.php?category_id=480 レイ・アウト http //www.ray-out.co.jp/products/sc02c/index.html がうがう http //www.gaugau.jp/?mode=cate cbid=387350 csid=11 など オススメ保護フィルム ミヤビックス http //www.miyavix.co.jp/products/protectsheet/glare/2787.html Micro Solution http //www.micro-solution.com/pd/sp/galaxy-s2.html などその他多数。 大容量バッテリー ノーブランド 3500mAh + バックカバー http //bulk.shop29.makeshop.jp/shopdetail/001001000002/ 予備バッテリー充電器 中国製 USB出力端子付き バッテリー充電器 http //bulk.shop29.makeshop.jp/shopdetail/001002000001/ HDMI出力 MHLに対応しているためMHL対応の汎用ケーブルを扱える BUFFALOなど http //buffalo-kokuyo.jp/products/phone/cable/hdmi/bsmpc09bk/
https://w.atwiki.jp/bambooflow/pages/298.html
ジオメトリシェーダで簡易シャドウイング ジオメトリシェーダで影行列を使った簡易シャドウイングを試してみました。 プログラムは、影行列を使った簡易シャドウイングを修正して、影行列の計算をジオメトリシェーダに実装します。 修正としては、Cコード側にあった影行列の計算をそっくりそのままジオメトリシェーダに実装した形です。 シェーダの効率とかはまったく考えていないので、こういうことができるんだぐらいに思ってください。 あくまでも簡易シャドウイングです。シャドウボリュームでなくてごめんなさい。 OpenGL 3.x GLUT (freeglut 3.7) GLM 0.9.0.6 GL3W (or GLEW 1.5.7) ジオメトリシェーダで簡易シャドウイング影行列 ソースコード まとめ 影行列 // 影行列の計算 mat4 calcShadowMatrix(vec3 l, vec3 g, vec3 n) { float d, c; n = -n; d = dot(n,l); c = dot(g,n) - d; mat4 m = mat4( l.x*n.x+c, l.y*n.x, l.z*n.x, n.x, l.x*n.y, l.y*n.y+c, l.z*n.y, n.y, l.x*n.z, l.y*n.z, l.z*n.z+c, n.z, -l.x*c-l.x*d, -l.y*c-l.y*d, -l.z*c-l.z*d, -d ); return m; } 影の計算方法 (ProjectionMatrix) * (ViewMatrix) * (ShadowMatrix) * (ModelMatrix) * 頂点座標 今回は、すべてシェーダ側で計算します。 ソースコード バーテックスシェーダ #version 330 in vec3 a_position; in vec3 a_normal; out vec3 v_normal; void main(void) { v_normal = a_normal; gl_Position = vec4(a_position.xyz, 1.0); } ジオメトリシェーダ ここがこのプログラムの主になります。 もとのバーテックスシェーダで実装していた影付の計算をジオメトリシェーダで計算するようにしています。 これは、Model,ViewおよびProjectionマトリックスと変換前の頂点座標を取得するためです。 影行列はcalcShadowMatrixで計算します。 そのマトリックスと頂点座標で影を生成します。 生成の記述は次の通りです。 for (int i=0; i 3; i++) { g_color = vec4(0.2, 0.2, 0.2, 1.0); // shadow color gl_Position = projectionMatrix*viewMatrix*shadowMatrix*modelMatrix*gl_in[i].gl_Position; EmitVertex(); } EndPrimitive(); 影を生成することで、ジオメトリシェーダが返す頂点数は3点から6点に増えます。 よって、出力はlayout(triangle_strip, max_vertices=6) out と最大の頂点数を設定します。 #version 330 uniform mat4 modelMatrix; // モデル・マトリックス uniform mat4 viewMatrix; // ビュー・マトリックス uniform mat4 projectionMatrix; // 射影・マトリックス uniform vec3 lightPos; // 光源位置 layout(triangles) in; layout(triangle_strip, max_vertices=6) out; in vec3 v_normal[3]; out vec4 g_color; vec4 diffuse = vec4(0.3, 0.3, 0.6, 1.0); // diffuse color // 影行列の計算 mat4 calcShadowMatrix(vec3 l, vec3 g, vec3 n) { float d, c; n = -n; d = dot(n,l); c = dot(g,n) - d; mat4 m = mat4( l.x*n.x+c, l.y*n.x, l.z*n.x, n.x, l.x*n.y, l.y*n.y+c, l.z*n.y, n.y, l.x*n.z, l.y*n.z, l.z*n.z+c, n.z, -l.x*c-l.x*d, -l.y*c-l.y*d, -l.z*c-l.z*d, -d ); return m; } void main(void) { mat4 modelViewMatrix = viewMatrix * modelMatrix; vec3 lightVec = vec3(viewMatrix * vec4(lightPos.xyz,1.0)); mat3 n_mat = mat3( transpose( inverse(modelViewMatrix) ) ); // normal Matrix vec3 P, N, L; for (int i=0; i 3; i++) { P = vec3(modelViewMatrix * gl_in[i].gl_Position); // Eye vector N = normalize(n_mat * v_normal[i]); // normal direction L = normalize(lightVec - P); // light direction g_color = diffuse * dot(N,L); gl_Position = projectionMatrix*modelViewMatrix*gl_in[i].gl_Position; EmitVertex(); } EndPrimitive(); mat4 shadowMatrix = calcShadowMatrix(lightPos, vec3(0.0,0.0,0.0), vec3(0.0,1.0,0.0)); // // shadow matrix // for (int i=0; i 3; i++) { g_color = vec4(0.2, 0.2, 0.2, 1.0); // shadow color gl_Position = projectionMatrix*viewMatrix*shadowMatrix*modelMatrix*gl_in[i].gl_Position; EmitVertex(); } EndPrimitive(); } フラグメントシェーダ #version 330 in vec4 g_color; out vec4 fragColor; void main(void) { fragColor = g_color; } Cコード #include cstdlib #include iostream #include list //#include GL/glew.h #include GL3/gl3w.h #include GL/glut.h #include "load_shader.h" // OpenGL Mathematics Library #include glm/glm.hpp #include glm/gtc/matrix_projection.hpp #include glm/gtc/matrix_transform.hpp #include glm/gtx/transform2.hpp #include glm/gtc/type_ptr.hpp // prototype void reshape(int w, int h); void init(); void timer(int t ); void display(); class Cube { private struct Vertex_t { GLfloat position[3]; // (vx,vy,vz) GLfloat normal[3]; // (nx,ny,nz) }; GLuint vao[1]; // Vertex array buffer objects GLuint eao[1]; // array buffer objects for elements GLint positionLocation; GLint normalLocation; GLuint numIndecies; glm mat4 modelMat; glm vec3 position; glm vec3 size; glm vec3 angle_axis; float angle; public void setup(GLuint programObj) { GLuint offset; GLuint vbo[1]; Vertex_t vertex[] = { // position(x,y,z) , normal(x,y,z) { { -0.5f, -0.5f, -0.5f }, { +0.0f, -1.0f, +0.0f } }, { { -0.5f, -0.5f, +0.5f }, { +0.0f, -1.0f, +0.0f } }, { { +0.5f, -0.5f, +0.5f }, { +0.0f, -1.0f, +0.0f } }, { { +0.5f, -0.5f, -0.5f }, { +0.0f, -1.0f, +0.0f } }, { { -0.5f, +0.5f, -0.5f }, { +0.0f, +1.0f, +0.0f } }, { { -0.5f, +0.5f, +0.5f }, { +0.0f, +1.0f, +0.0f } }, { { +0.5f, +0.5f, +0.5f }, { +0.0f, +1.0f, +0.0f } }, { { +0.5f, +0.5f, -0.5f }, { +0.0f, +1.0f, +0.0f } }, { { -0.5f, -0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { -0.5f, +0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { +0.5f, +0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { +0.5f, -0.5f, -0.5f }, { +0.0f, +0.0f, -1.0f } }, { { -0.5f, -0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { -0.5f, +0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { +0.5f, +0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { +0.5f, -0.5f, +0.5f }, { +0.0f, +0.0f, +1.0f } }, { { -0.5f, -0.5f, -0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, -0.5f, +0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, +0.5f, +0.5f }, { -1.0f, +0.0f, +0.0f } }, { { -0.5f, +0.5f, -0.5f }, { -1.0f, +0.0f, +0.0f } }, { { +0.5f, -0.5f, -0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, -0.5f, +0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, +0.5f, +0.5f }, { +1.0f, +0.0f, +0.0f } }, { { +0.5f, +0.5f, -0.5f }, { +1.0f, +0.0f, +0.0f } } }; GLuint indices[] = { 0, 2, 1, 0, 3, 2, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 15, 14, 12, 14, 13, 16, 17, 18, 16, 18, 19, 20, 23, 22, 20, 22, 21 }; numIndecies = sizeof(indices)/sizeof(GLuint); positionLocation = glGetAttribLocation(programObj, "a_position"); normalLocation = glGetAttribLocation(programObj, "a_normal"); // Create and bind VAO glGenVertexArrays(1, vao); glBindVertexArray(vao[0]); // Create VBO glGenBuffers(1, vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo[0]); glBufferData(GL_ARRAY_BUFFER, sizeof(vertex), vertex, GL_STATIC_DRAW); offset = 0; glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex_t), (const void*)offset); offset += 3 * sizeof(GLfloat); glVertexAttribPointer(normalLocation, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex_t), (const void*)offset); // Enable Attribute glEnableVertexAttribArray(positionLocation); glEnableVertexAttribArray(normalLocation); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); glDeleteBuffers(1, vbo); // Create Index Buffer glGenBuffers(1, eao); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao[0]); glBufferData(GL_ELEMENT_ARRAY_BUFFER, numIndecies*sizeof(GLuint), indices, GL_STATIC_DRAW); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); angle = 0.0; } void render() { glBindVertexArray(vao[0]); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao[0]); glDrawElements(GL_TRIANGLES, numIndecies, GL_UNSIGNED_INT, 0); } void update() { modelMat = glm mat4(1.0f); modelMat = glm translate(modelMat, position); modelMat *= glm rotate(angle, angle_axis); } glm mat4 getMatrix() { return modelMat; } void setAngle(float a, float ax, float ay, float az) { angle = a; angle_axis = glm vec3(ax, ay, az); } void setPosition(float x, float y, float z) { position = glm vec3(x, y, z); } void setSize(float x, float y, float z) { size = glm vec3(x, y, z); } }; /////////////////////////////////////////////////////////////////////////////// // // for GLSL // GLuint programObject; GLint modelMatrixLocation; GLint viewMatrixLocation; GLint projectionMatrixLocation; GLint shadowEnableLocation; GLint lightPosLocation; glm mat4 ViewMatrix; glm mat4 ProjectionMatrix; // // Model // Cube cube; glm vec3 light_pos(10.0, 10.0, 0.0); // 光源位置 glm vec3 cube_pos(0.0, 2.0, 0.0); // // initialize // void init() { glClearColor(0.5, 0.5, 0.5, 1.0); glClearDepth(1.0f); ViewMatrix = glm lookAt( glm vec3(4.0f, 5.0f, 6.0f), glm vec3(0.0f, 2.0f, 0.0f), glm vec3(0.0f, 1.0f, 0.0f) ); glUniformMatrix4fv(viewMatrixLocation, 1, GL_FALSE, glm value_ptr(ViewMatrix)); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); // // GLSL initialize // std list GLuint shaderList; shaderList.push_back( loadShaderFromFile(GL_VERTEX_SHADER, "simple.vert") ); shaderList.push_back( loadShaderFromFile(GL_GEOMETRY_SHADER, "simple.geom") ); shaderList.push_back( loadShaderFromFile(GL_FRAGMENT_SHADER, "simple.frag") ); programObject = createProgram(shaderList); modelMatrixLocation = glGetUniformLocation(programObject, "modelMatrix"); viewMatrixLocation = glGetUniformLocation(programObject, "viewMatrix"); projectionMatrixLocation = glGetUniformLocation(programObject, "projectionMatrix"); shadowEnableLocation = glGetUniformLocation(programObject, "shadowEnable"); lightPosLocation = glGetUniformLocation(programObject, "lightPos"); glBindFragDataLocation(programObject, 0, "fragColor"); } void reshape(int w, int h) { glViewport(0, 0, w, h); ProjectionMatrix = glm perspective(30.0f, (float)w/(float)h, 1.0f, 100.0f); } void timer(int t) { glutPostRedisplay(); glutTimerFunc(t, timer, 17); } // // Main Loop // void display() { static float angle = 0.0; cube.setAngle(angle, 0.0f, 1.0f, 0.0f); cube.update(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(programObject); glUniformMatrix4fv(viewMatrixLocation, 1, GL_FALSE, glm value_ptr(ViewMatrix)); glUniformMatrix4fv(projectionMatrixLocation, 1, GL_FALSE, glm value_ptr(ProjectionMatrix)); glUniform3fv(lightPosLocation, 1, glm value_ptr(light_pos)); // // Draw Cube // glUniform1i(shadowEnableLocation, 0); glUniformMatrix4fv(modelMatrixLocation, 1, GL_FALSE, glm value_ptr(cube.getMatrix())); cube.render(); glUseProgram(0); glutSwapBuffers(); angle += 1.0; if (angle 180.0) angle = 0.0; } int main(int argc, char *argv[]) { glutInit( argc, argv); glutInitWindowSize(400, 300); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("OpenGL sample"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutTimerFunc(100, timer, 17); // GLenum err; // //glewExperimental = GL_TRUE; // err = glewInit(); // if (err != GLEW_OK) { // std cerr "GLEW error " glewGetErrorString(err) "\n"; // std exit(1); // } // if (!glewIsSupported("GL_VERSION_3_2")) { // std cerr "OpenGL 3.2 not supported.\n"; // std exit(1); // } if (gl3wInit()) { std cerr "failed to initialize OpenGL\n"; return 1; } if (!gl3wIsSupported(3, 2)) { std cerr "OpenGL 3.2 not supported\n"; return 1; } init(); // // setup Cube // cube.setup(programObject); cube.setAngle(0.0, 0.0f, 1.0f, 0.0f); cube.setPosition(cube_pos.x, cube_pos.y, cube_pos.z); glutMainLoop(); return 0; } まとめ ジオメトリシェーダは、難しいと思っていて使うのを敬遠していたが、実際使ってみると以外に簡単でした。 今回の影行列による影生成もやりたいと思ってから実装までそう時間はかかりませんでした。 ただ効率とかを考えていないのでもっと良い実装があるかもしれません。 それでも、Cコード側で影を意識せずに実装できている点では、私が目的としたものとして満足できています。
https://w.atwiki.jp/dominions3/pages/321.html
False Horror 戦闘中一撃で倒せるが恐怖を撒き散らすHorrorの幻影False Horrorを作成します False Horror ジェム 疲労 内部ID 379 0 10 使用 水中判定 効果 効果量 戦闘 水中可 Battle Summon 主属性 主Lv 効果発生数 射程距離 Air 3 1 5 副属性 副Lv 効果範囲 命中補正 - 0 0 0 領域 Lv 防御判定 抵抗判定 Alteration 6 専用国家 ゲーム内説明文 The illusionist creates a frightening illusion of a Horror. Ordinary men will surely falter at the sight of a Horror, but those brave enough to fight the apparition will find it quite vulnerable. 和訳 幻術師は、恐るべきHorrorの幻影を作ります。常人はHorrorを見れば確実に怯みます。しかし、この幻影に立ち向かえるほど勇敢なものはそれが非常に弱いことに気付きます。 注記 Lesser Horrorの幻影を作る魔法。他の幻影と同じく、HP1の霊体扱いで攻撃が当たると即座に消滅する。 いくらHorrorの幻とはいえ、攻撃は幻の爪で抵抗可能かつ特殊効果はなし。全体的なステータスも本物には負ける。Fear効果にしても効果はやや低い。 しかしこの魔法、Gemが必要ない上に疲労コストが極端に低い。使用条件も風魔法が得意な国なら容易に満たせる程度。士気の低い敵に向けて大量に放つとなかなか愉快なことになる。 また本物と違い自軍に殴りかかるようなことはないので、事故の心配もない。魔法抵抗力の低い敵なら攻撃もそれなりに痛く、飛行できるのも利点。本物と同じくStorm下でも飛べるのは覚えておいて損はない。 対策は他の多くの幻影と同じ。魔法武器で叩けばあっさり消せるし、その他の攻撃魔法でも簡単に処分できる。毒は通じず精神攻撃も効かないが、その他の必中魔法が使えれば苦もなく始末できるだろう。 コメント 名前 コメント
https://w.atwiki.jp/wowwiki/pages/110.html
#ref error :ご指定のページがありません。ページ名を確認して再度指定してください。 Paladin #ref error :ご指定のページがありません。ページ名を確認して再度指定してください。 Paladin [#h005d076] Basic/概要 [#zf517239] Strengths/長所 [#sb93787e] Weaknesses/短所 [#r29f354b] Talent/タレントの方向性 [#z848a55c] Status/ステータス [#hd1a8589] 装備可能品 [#k26ec0b4] 武器スキル [#rd946c72] 装備可能防具 [#m64009b7] Passive Skill [#zc5db1a6] Paladin特有のSpellについて [#a02082b7] Aura/オーラ [#b0b5d238] Blessing/ブレッシング [#x4380d63] Seal/シール [#baa3a9e9] その他 / Buffスペル [#dbe8942f] Mount/乗騎 [#z374fd09] Basic/概要 #ref error :ご指定のページがありません。ページ名を確認して再度指定してください。 神聖なる光の擁護者にしてAllianceの守護者たるPaladinは、 Tirisfal Gladesの森で荒らされた大地の南へと侵略するForsakenのUndeadたちと戦い、撃退するその勇士を見ることができるでしょう。彼らはDark Portalからの魔の軍隊に対しての警戒を常に怠っていないのです。Paladinは巨大なハンマーと光の力を行使し、戦いにおいては指揮者として集団を指揮します。 Paladinは戦士とスペルユーザーのハイブリッドClassです。Paladinは、HealingやSeal、或いは他のAbilityからGroupに加えるのに申し分の無い能力を持っています。PaladinはGroupの全てのメンバーにPaladin毎にひとつAuraの効果を与え、特定のプレイヤーに対しては特定のSealを使うことができます。 PaladinはDefenes能力に優れ、倒すことがかなり難しいClassです。Paladinは聖なる光によって、他のMelee Classと違い自らを癒すことができます。加えて、幾つかの能力は対Undead/Demon用のものであり、破邪に特化した戦士ともいえます。 Strengths/長所 高い防御力と回復魔法/無敵による生存力 QuestでMountを取得可能 蘇生魔法を所持 Weaknesses/短所 最低の機動力。距離を取られた際の対応力が低い トドメが刺せない決定力不足 Talent/タレントの方向性 Holy 「神聖」 聖なる力で回復だ!回復魔法を主眼とした強化 Protection 「守護」 主よ、我が身を守りたまえ!主に防御的、支援力の強化 Retribution 「応報」 悪いヤツをこらしめろ!主に攻撃的強化 Status/ステータス Alliance Race STR +2 AGI STA +2 INT SPI +1 HP Mana Dwarf 24 16 25 19 20 88 79 Human 22 20 22 20 22 58 80 装備可能品 武器スキル ◎=初期保持スキル ○=各主要都市にいるトレーナーより習得可能 ×=習得不可 ○Axes ×Daggers ○Swords ◎Maces ◎Unarmed ×Wands ×Bows ×Crossbows ×Fist Weapons ×Guns △Polearms (20Lvより習得可能) ×Staves ×Thrown ○Two-Handed Axes ◎Two-Handed Maces ○Two-Handed Swords 装備可能防具 Cloth Leather Mail Plate Mail(Level40より) Shield Passive Skill Skill Name Level Text Parry 8 Melee攻撃をParryする確率を得て、攻撃を回避することができます。 Plate Mail 40 Plate-Mailが装備可能となります Paladin特有のSpellについて PaladinのSpellは、使用形態・効果・継続時間などで下記のような種類に分類されます。Instant系以外は基本的に一人のパラディンが一人のプレイヤーに対して使用できるスペルは、各系統一種類のみです。ですが二人以上のパラディンがパーティー内にいれば、お互いに違ったスペルを掛けることで2つ以上のスペル効果を得ることが出来ます。 Aura/オーラ Paladinは自らが発するAuraによって、自分とその周囲に立つ仲間に対して聖なる保護(Buff)を与えることができます。Aura系は半永久的な支援スペルです。一人のPaladinにつき1つだけを使用する事ができます。グループで二人以上のPaladinがいる場合、別々のAuraを使用する事で複数のAuraを自分を含むパーティーメンバーにかけることができます。範囲はお互いに2つのAuraの効果を得ることができます。Auraは一度掛けると解除するか死ぬまで有効です。有効なのは自分自身と30yard以内にいるパーティーメンバーのみで、パーティーを組んでいない他のプレイヤーにAuraを与えることはできません。 Blessing/ブレッシング Paladinは全ての同盟者に対して光の祝福(Buff)を与えることができます。祝福によって得られる効果は多岐に渡ります。Blessing系は短時間(5分間)だけ効果のあるBuffです。一人のPaladinにつき一種類のBlessingを使用できますので、パーティー内で二人以上のPaladinがいる場合、お互いに別々のBlessingを使用しましょう。Blesssing系はAura系とは異なり、一人一人に掛ける必要があります。またBlessingはパーティーメンバーでなくてもかけることができますので、狩場で他のユーザーからBlessingやその他のBuffをもらった際は、お返しにBlessingをかけてあげましょう。 Seal/シール Paladin自身に聖なる力を宿すことでPaladinの能力を強化することができます。-Sealによって宿した力を解き放つことよって、その力を敵対者を罰する力に変えることができます。これを「Judgement」と呼びます。Seal系は攻撃に特殊効果を加えます。このスキルの有効時間は30秒です。1.9patchで単にSealを使用して攻撃するだけでも追加効果が望めますが、Seal使用後にJudgementを使用すると、Seal毎に異なった特殊効果(敵が逃げるのを防ぐ、ダメージ量増加など)を敵に与えます。Judgement使用時に、使っていたSealは解放されますので、またSealをかけると効果的です。この組み合わせで様々な攻撃方法が可能です。 ※1.9patchでJudgementの効果時間が変更になりました。Judgementの効果時間は10秒に短縮され、相手にMelee AttackがHitする度にJudgementの効果時間がリセットされます。 Judgementの使い方の例CENTER Seal of the Crusader ( SoC ) を使用CENTER ↓CENTER SoCをJudgementによって解放 ( SoC Judgementは敵に与えるHoly Dmgが上昇する )CENTER ↓CENTER Seal of Righteousness ( SoR ) を使用( SoRは通常攻撃にHoly Dmgを追加する ) Judgementした時点でSoCの効果は消え、代わりにSoCのJudgement効果が有効になる。その直後にSoRを纏うとSoCのJudgement効果でSoRの追加ダメージが増加する。 つまりJudgementを使って戦う事で、Seal系の特殊効果に加えJudgementの特殊効果も加えて攻撃できることになります。 ※:Seal系の効果は攻撃するたびに必ず発生するわけではなく、あくまでそのチャンスがあるという点です。つまり、Seal of Crusaderで通常攻撃が2倍になるといっても、各上の敵相手では追加効果はほとんど発動しません。逆に各下の相手だと連続で追加効果が出たりします。 その他 / Buffスペル 主な属性付き攻撃SkillはHoly。 Paladinは、非常に頑健、かつ治癒魔法の使えるクラスです。 Paladinは、各種のAuraと、各種のSeal、2種類のBuffを所持しています。 Paladinは、Magic(魔法)系効果、Poison(毒)系効果、Disease(病気)系効果を治癒することが可能です。 Mount/乗騎 #ref error :ご指定のページがありません。ページ名を確認して再度指定してください。 チャージャー